package cn.jy.map.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.jy.map.domain.achieve.JCRewardPunishment;
import cn.jy.map.domain.achieve.NurseAchievements;
import cn.jy.map.domain.achieve.NursePostWagesDetail;
import cn.jy.map.domain.achieve.ProvidersCollPNum;

/**
 * 绩效Mapper
 * @author Administrator
 *
 */
public interface AchievementsMapper {

	/**
	 * 保存护士绩效综合信息
	 * @param nurseAchievements
	 */
	public void saveNurseAchievements(NurseAchievements nurseAchievements);

	/**
	 * 更新护士绩效综合信息
	 * @param nurseAchievements
	 */
	public void updateNurseAchievements(NurseAchievements nurseAchievements);
	/**
	 * 更新护士岗位绩效
	 * @param nurseAchievements
	 */
	public void updateNursePostAchievements(NurseAchievements nurseAchievements);
	/**
	 * 查询护士绩效综合信息<br>
	 * 可以根据护士、年份、月份 查询
	 * @param nurseAchievements
	 * @return
	 */
	public List<NurseAchievements> getNurseAchievements(NurseAchievements nurseAchievements);
	/**
	 * 查询护士奖惩信息<br>
	 * @param nurseId
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	public List<JCRewardPunishment> getNurseJc(@Param("nurseId")String nurseId,@Param("startDate")String startDate,@Param("endDate")String endDate);
	
	/**
	 * 获取采浆护士的岗位绩效 -- 查询护士的某年某月的采浆记录（查精英）
	 * @param nurseId
	 * @param startDate ：开始时间
	 * @param endDate ：结束时间
	 * @return
	 */
	List<NursePostWagesDetail> getNurseMonthCollProvider(@Param("nurseId")String nurseId,@Param("startDate")String startDate,@Param("endDate")String endDate);
	
	/**
	 * 获取某个护士某个时间段内的的采浆人数（查精英）
	 * @param nurseId ： 采浆护士
	 * @param startDate ： 开始时间 ，格式：yyyy-MM-dd
	 * @param endDate ： 结束时间 ，格式：yyyy-MM-dd
	 * @return
	 */
	public int getNurseCollPNum(@Param("nurseId")String nurseId,@Param("startDate")String startDate,@Param("endDate")String endDate);
	
	/**
	 * 获取某些护士某年某月的岗位平均绩效
	 * @param list ： 采浆护士集合
	 * @param year 
	 * @param month 
	 * @return
	 */
	public float getNurseAvgAchievements(@Param("list")List<String> list,@Param("year")String year,@Param("month")int month);
	/**
	 * 获取指定浆员指定时间内的采浆记录，根据采浆日期分组，分别展示具体日期采浆次数
	 * @param list ： 浆员集合
	 * @param startDate ： 开始时间 ，格式：yyyy-MM-dd
	 * @param endDate ： 结束时间 ，格式：yyyy-MM-dd
	 * @return
	 */
	public List<ProvidersCollPNum> getProvidersCollPNum(@Param("list")List<String> list,@Param("startDate")String startDate,@Param("endDate")String endDate);
	
	
}
